# 运算符	描述	功能	实例
# &	按位与运算符	运算规则：先转换为二进制数，在计算，规则对应位都是1才为1，否则为0。
# |	按位或运算符	运算规则：先转换为二进制数，在计算，规则对应位只要有1即为1，否则为0。
# ^	按位异或运算符	运算规则：先转换为二进制数，在计算，规则对应位一个为1一个为0，才为1，否则为0。
# ~	按位取反运算符	运算规则：先转换为二进制数，在计算，规则对应位为1，则结果为0；对应位为0，则结果为1。
# <<	在一定范围内，数据每向左移动一位，相当于原数据*2。（正数、负数都适用）
# >>	在一定范围内，数据每向右移动一位，相当于原数据/2。（正数、负数都适用）

# 按位与&
'''
101
111
----
101
'''
print(5 & 7)
# 按位或 |
'''
011
100
----
111
'''
print(3 | 4)

# 按位异或
'''
010
100
----
110
'''
print(2 ^ 4)
# 按位取反~
'''
01
---
10
110
'''
print(~1)
# 左移 右移
'''
101
----
10100
'''
print(5 << 2)
